﻿/**********************************************************************
 * @file   FITKRadiossDataHDF5Reader.h
 * @brief  HDF5文件读取
 * @author guqingtao (15598887859@163.com)
 * @date   2025-09-28
 *********************************************************************/
#ifndef __FITKRadiossDataHDF5Reader_H__
#define __FITKRadiossDataHDF5Reader_H__

#include "FITKRadiossDataIOHDF5API.h"
#include "FITK_Kernel/FITKCore/FITKCoreMacros.h"
#include "FITK_Interface/FITKInterfaceIO/FITKAbstractHDF5Reader.h"

ForwardDeclarNS(H5, Group);

namespace IO
{
    /**
     * @brief  HDF5文件读取
     * @author guqingtao (15598887859@163.com)
     * @date   2025-09-28
     */
    class FITKRadiossDataIOHDF5API FITKRadiossDataHDF5Reader : public FITKAbstractHDF5Reader
    {
    public:
        /**
         * @brief    Construct a new FITKACISHDF5Reader object
         * @return   void
         * @author   guqingtao (15598887859@163.com)
         * @date     2025-09-28
         */
        explicit FITKRadiossDataHDF5Reader() = default;
        virtual ~FITKRadiossDataHDF5Reader() = default;

        /**
         * @brief    重写run函数
         * @return   void
         * @author   guqingtao (15598887859@163.com)
         * @date     2025-09-28
         */
        void run() override;

        /**
         * @brief    打印控制台消息
         * @param[i] level 
         * @param[i] str 
         * @return   void
         * @author   guqingtao (15598887859@163.com)
         * @date     2025-09-28
         */
        void consoleMessage(int level, const QString& str) override;

    private:
        /**
         * @brief    读取数据
         * @return   bool
         * @author   guqingtao (15598887859@163.com)
         * @date     2025-09-28
         */
        bool readRadiossDatas();
        /**
         * @brief    读取版本
         * @param[i] g 
         * @return   bool
         * @author   guqingtao (15598887859@163.com)
         * @date     2025-09-28
         */
        bool readVersion(H5::Group* g);
    private:
    };
}


#endif
